// 引入请求
import {
    reqNavList
} from '@/api';
import {
    reqGetBannerList
} from '@/api';
// home模块的小仓库
// state：仓库存储数据的地方
const state = {
    // state的初始值
    navList: [],
    // 轮播图的数据
    bannerList: []
};
// mutations：修改state的唯一手段
const mutations = {
    NAVLIST(state, navList) {
        // 修改state中navList的数据
        state.navList = navList;
    },
    // bannerList参数叫什么名字都可
    GETBANNERLIST(state, bannerList) {
        state.bannerList = bannerList;
    }
};
// actions：处理actions，可以书写自己的业务逻辑，处理异步任务
const actions = {
    // 通过API里面的接口函数，向服务器发请求，获取服务器的数据
    // 解构commit，提交mutation
    async navList({commit}) {
        // 调用reqNavList函数
        let result = await reqNavList();
        if (result.code == 200) {
            // 提交的数据是result.data
            commit("NAVLIST", result.data);
        }
    },
    // 获取首页轮播图的数据
    async getBannerList({commit}) {
        let result = await reqGetBannerList();
        console.log(result);
        if (result.code == 200) {
            commit("GETBANNERLIST", result.data);
        }
    }
};
// getters：理解为计算属性，用于简化仓库数据，让组件获取仓库的数据更加方便
const getters = {};
export default {
    // Vuex的配置对象，key值不能瞎写
    state,
    mutations,
    actions,
    getters
}